package com.shop.cloud.service.system;
//package com.freends.cloud.service.system;
//
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//import org.springframework.beans.BeanUtils;
//
//import com.freends.cloud.common.view.SpringUtils;
//import com.freends.cloud.form.SysDictSmall;
//import com.freends.cloud.model.system.SysDict;
//import com.freends.cloud.util.Objects;
//import com.freends.cloud.util.StringUtil;
//
///**
// * 数据字典类
// */
//public final class CommonDict {
//
//	private volatile static Map<String, List<SysDict>> dicts = new HashMap<String, List<SysDict>>();
//
//	/**
//	 * 初始化加载字典
//	 */
//	public static void init() {
//		ISysDictService sysDictService = SpringUtils.getBean(ISysDictService.class);
//		Map<String, Object> maps = new HashMap<String, Object>();
//		maps.put("status", 1);
//		maps.put("orderBy","group_type,type,value");
//		List<SysDict> sysDictSource = sysDictService.find(maps);
//		String groupType = null;
//		for (SysDict sysDict : sysDictSource) {
//			if (!StringUtil.isEmpty(sysDict.getGroupType())) {
//				if (StringUtil.isEmpty(groupType) || !groupType.equals(sysDict.getGroupType())) {
//					List<SysDict> list = new ArrayList<SysDict>();
//					list.add(sysDict);
//					dicts.put(sysDict.getGroupType(), list);
//				} else {
//					dicts.get(groupType).add(sysDict);
//				}
//			}
//			groupType = sysDict.getGroupType();
//		}
//	}
//
//	/**
//	 * 通过字典获取值
//	 */
//	public static Map<String, List<SysDict>> get() {
//		return dicts;
//	}
//
//	/**
//	 * 获取动态选择列表
//	 */
//	public static Map<String, List<SysDictSmall>> getFileds(String groupType) {
//		if (StringUtil.isEmpty(groupType)) {
//			throw new IllegalArgumentException("参数错误！");
//		}
//		List<SysDict> sysDicts = dicts.get(groupType);
//		if (sysDicts == null) {
//			return null;
//		}
//		String type = null;
//		Map<String, List<SysDictSmall>> values = new HashMap<String, List<SysDictSmall>>();
//		for (SysDict sysDict : sysDicts) {
//			if (!StringUtil.isEmpty(sysDict.getType())) {
//				SysDictSmall  sysDictSmall=new SysDictSmall();
//				BeanUtils.copyProperties(sysDict,sysDictSmall);
//				if(sysDict.getHasDefault()!=null&&sysDict.getHasDefault()==1){
//					sysDictSmall.setIsDefault(true);
//				}
//				if(!StringUtil.isEmpty(sysDict.getValue())){
//					sysDictSmall.setValue(Objects.strToInt(sysDict.getValue()));
//				}
//				sysDictSmall.setValueType(sysDict.getValueType());
//				if (StringUtil.isEmpty(type) || !type.equals(sysDict.getType())) {
//					List<SysDictSmall> list = new ArrayList<SysDictSmall>();
//					list.add(sysDictSmall);
//					values.put(sysDict.getType(), list);
//				} else {
//					values.get(type).add(sysDictSmall);
//				}
//			}
//			type = sysDict.getType();
//		}
//		return values;
//	}
//
//	/**
//	 * 通过字典获取值
//	 */
//	public static List<SysDict> get(String groupType) {
//		if (StringUtil.isEmpty(groupType)) {
//			throw new IllegalArgumentException("参数错误！");
//		}
//		return dicts.get(groupType);
//	}
//
//	/**
//	 * 通过字典获取值
//	 */
//	public static SysDict get(String groupType, String type) {
//		List<SysDict> sysDictSource = get(groupType);
//		if (sysDictSource == null || sysDictSource.isEmpty()) {
//			return null;
//		}
//		for (SysDict sysDict : sysDictSource) {
//			if (sysDict.getType().equals(type)) {
//				return sysDict;
//			}
//		}
//		return null;
//	}
//
//}
